//package com.lck.main.view;
//
//import javax.swing.*;
//import java.awt.*;
//import java.awt.event.MouseAdapter;
//import java.awt.event.MouseEvent;
//import java.io.File;
//
//public class GamePanel_back extends JPanel {
//    public Image getImage(String path){
//        return Toolkit.getDefaultToolkit().getImage(path);
//    }
//    //定义一个保存所有棋子成员变量，类型是数组。
//    private Chess[] chesses = new Chess[32];//保存所有棋子
//
//    private Chess selectedChess;//当前选中的棋子。
//
//    private int curPlayer = 0;//记住当前阵营
//    //构造方法
//    public GamePanel_back(){
//        System.out.println("GamePanel");
//        createChesses();
//        /**
//         * 1.点击棋盘
//         * 2.如何判断点击的地方是否有棋子对象
//         * 3.如何区分重新选择，移动，吃子
//         * -----
//         * 棋盘规则
//         * 1.不可操作对方的棋子
//         * 2.一方走完之后另一方才能走
//         */
//        addMouseListener(new MouseAdapter() {
//            @Override
//            public void mouseClicked(MouseEvent e) {
//                System.out.println("点击棋盘的坐标为:x=" + e.getX() + ",y=" + e.getY());
//                Point p = Chess.getPointFromXY(e.getX(),e.getY());
//                System.out.println("点击棋盘的网格坐标对象为:p===" + p);
////                Chess c = getChessByP(p);
//                if (selectedChess == null){
//                    //第一次选择
//                    selectedChess = getChessByP(p);
//                    if (selectedChess != null && selectedChess.getPlayer() != curPlayer){
//                        selectedChess = null;
//                    }
//                } else {
//                    //重新选择，移动，吃子
//                    Chess c = getChessByP(p);
//                    if (c!=null){
//                        //第n次点击的时候有棋子
//                        //重新选择，吃子
//                        if (c.getPlayer() == selectedChess.getPlayer()) {
//                            //相同阵营重新选择
//                            System.out.println("重新选择");
//                            selectedChess = c;
//                        }
//                        else {
//                            //吃子
//                            System.out.println("吃子");
//                            if (selectedChess.isAbleMoved(p, GamePanel_back.this)){
//                                //从数组中删除被吃掉的棋子
//                                chesses[c.getIndex()] = null;
//                                //修改要移动的棋子的坐标
//                                selectedChess.setP(p);
//                                overMyturn();
//                            }
//
//                        }
//                    }else{
//                        //第n次点击空白的地方。
//                        //移动
//                        System.out.println("移动");
//                        if (selectedChess.isAbleMoved(p, GamePanel_back.this)){
//                            selectedChess.setP(p);
//                            overMyturn();
//                        }
//                    }
//                }
//                System.out.println("点击的棋子对象为:selectedChess===" + selectedChess);
//                //刷新棋盘，即重新执行paint方法
//                repaint();
//
//            }
//        });
//    }
//
//    /**
//     * 结束当前回合
//     */
//    private void overMyturn(){
//        curPlayer = curPlayer == 0 ? 1 :0;
//        selectedChess = null;
//    }
//
//    /**
//     * 根据网格坐标p对象查找棋子对象
//     * @param p
//     * @return
//     */
//    public Chess getChessByP(Point p){
//        for (Chess chess : chesses) {
//            if (chess != null && chess.getP().equals(p)){
//                    return chess;
//            }
//        }
//        return null;
//    }
//
//    /**
//     * 创建所有棋子
//     */
//    private void createChesses(){
//        String [] names = {"che","ma","xiang","shi","boss","shi","xiang","ma","che","pao","pao","bing","bing","bing","bing","bing"};
//        Point [] ps = {new Point(1,1),new Point(2,1),new Point(3,1),new Point(4,1),new Point(5,1),new Point(6,1),new Point(7,1),new Point(8,1),new Point(9,1),
//                new Point(2,3),new Point(8,3),
//                new Point(1,4),new Point(3,4),new Point(5,4),new Point(7,4),new Point(9,4)};
//        for (int i = 0; i < names.length; i++) {
//            Chess c = new Chess();//创建棋子对象
//            c.setName(names[i]);
//            c.setP(ps[i]);
//            c.setPlayer(0);
//            c.setIndex(i);
//            chesses[i] = c;
//        }
//        for (int i = 0; i < names.length; i++) {
//            Chess c = new Chess();//创建棋子对象
//            c.setName(names[i]);
//            c.setP(ps[i]);
//            c.setPlayer(1);
//            c.reverse();
//            c.setIndex(i+16);
//            chesses[c.getIndex()] = c;
//
//        }
//    }
//
//    /**
//     * 绘制所有棋子
//     */
//    private void drawChesses(Graphics g){
//        for(Chess chess: chesses){
//            if (chess != null){
//                chess.draw(g,this);
//            }
//        }
//    }
//    @Override
//    public void paint(Graphics g) {
//        System.out.println("paint");
////        super.paint(g);
//        //1.准备图片路径
//        String path = "pic"+ File.separator;
//        //2.通过图片路径得到图片对象
//        Image bgImg = getImage(path + "qipan.jpg");
//        //3.将图片画到面板上
//        g.drawImage(bgImg,0,0,this);
//
//        //画棋子
//        drawChesses(g);
//
//        if (selectedChess != null){
//            selectedChess.drawRect(g);
//        }
//    }
//}
